package Day009_Map_斗地主_冒泡排序.demo08_冒泡排序;

/*
    一种排序的方式，对要进行排序的数据中相邻的数据进行两两比较，将较大的数据放在后面，依次对所有的数据进行操作，
    直至所有数据按要求完成排序.
    1.如果有n个数据进行排序，总共需要比较n-1次,每一次比较完毕，下一次的比较就会少一个数据参与
    2.每轮都是从索引0开始,两两比较
    3.每一轮确定一个位置上的元素

    比较的轮数是外层循环
    相邻两个元素比较是内循环
    for (int i = 0;i < length-1;i++){

        for (int j =0 ;j < length-1-i;j++){

        }
    }

 */

import java.util.Arrays;

public class Test冒泡排序 {
    public static void main(String[] args) {

        int[] arr = {45,15,35,25,55};

        //升序
        for (int i = 0; i < arr.length - 1; i++) {
            for (int j = 0; j < arr.length - 1 - i; j++) {
                // arr[j]与arr[j+1]的元素进行比较
                if (arr[j] > arr[j+1]){
                    int temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
        }
        System.out.println(Arrays.toString(arr));

        //降序
        for (int i = 0; i < arr.length-1; i++) {
            for (int j = 0;j < arr.length-1-i;j++){
                if (arr[j] < arr[j+1]){
                    int temp = arr[j+1];
                    arr[j+1] = arr[j];
                    arr[j] = temp;
                }
            }
        }
        System.out.println(Arrays.toString(arr));
    }
}
